home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 22 / AMIGAplus Sonderheft 22 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Vollversion / BankManager Version 1.6 / BankManager / BANK24.MPL next >
Text File  |  1999-11-08  |  23KB  |  1,122 lines

  1. '
  2. ' Bankkommunikationsskript für BANK24.
  3. '
  4. ' Erste Erstellung: 13.02.1999
  5. ' Letzte Änderung : 07.03.1999
  6. ' Autor: Volker Bartuseck
  7. '
  8. ' basierend auf:
  9. ' Bankkommunikationsskript für POSTBANK.
  10. '
  11. ' von: Christian Kaben
  12. '
  13.  
  14. LISTFILE$ := "BankManager:LISTFILE.PBK"
  15. EINUEB$ := "BankManager:EINUEB"
  16. SAMUEB$ := "BankManager:SAMUEB"
  17. SAMLST$ := "BankManager:SAMLST"
  18. EINUEBE$ := "BankManager:EINUEBE"
  19. SAMUEBE$ := "BankManager:SAMUEBE"
  20. SAMLSTE$ := "BankManager:SAMLSTE"
  21. KSTAND$ := "BankManager:KTOSTAND.PBK"
  22. AUSZUG$ := "BankManager:AUSZUG.PBK"
  23. UEBEXTENSION$ := ".PBK"
  24.  
  25. 'Maximale Länge von Empfänger- und Textfeldern.
  26. MAX_EM_LEN:=27
  27. MAX_TX_LEN:=27
  28.  
  29.  
  30. '****    Einlesen der Steuerdatei,
  31. '        eingerückt bedeutet Zeilen werden überlesen
  32. open #1,LISTFILE$,"r"
  33. 'Version
  34. INPUT$:=input$ #1
  35. 'Einzelüberweisung
  36. INPUT$:=input$ #1
  37. EINUEB := val(INPUT$)
  38. 'überweisung
  39.     INPUT$:=input$ #1
  40. 'überweisung
  41.     INPUT$:=input$ #1
  42. 'überweisung
  43.     INPUT$:=input$ #1
  44. 'überweisung
  45.     INPUT$:=input$ #1
  46. 'Sammelüberweisung
  47. INPUT$:=input$ #1
  48. SAMUEB := val(INPUT$)
  49. 'Sammellastschrift
  50. INPUT$:=input$ #1
  51. SAMLAS := val(INPUT$)
  52. 'Kontoauszüge holen?
  53. INPUT$:=input$ #1
  54. AUSZUG := val(INPUT$)
  55. 'Datum letzter Kontoauszug
  56. INPUT$:=input$ #1
  57. LAUSZUG$ := INPUT$
  58. 'Kontostand abfragen?
  59. INPUT$:=input$ #1
  60. STAND := val(INPUT$)
  61. 'PIN
  62. INPUT$:=input$ #1
  63. PIN$ := INPUT$
  64. 'Startseite
  65. INPUT$:=input$ #1
  66. STARTSEITE$ := INPUT$
  67. 'Kontonummer
  68. INPUT$:=input$ #1
  69. KONTONR$ := INPUT$
  70. 'Kennwort 1
  71.     INPUT$:=input$ #1
  72. 'Kennwort 2
  73.     INPUT$:=input$ #1
  74. 'Kennwort 3
  75.     INPUT$:=input$ #1
  76. 'Kennwort 4
  77.     INPUT$:=input$ #1
  78. 'Einzelüberweisung EURO
  79. INPUT$:=input$ #1
  80. EINUEBE := val(INPUT$)
  81. 'Sammelüberweisung EURO
  82. INPUT$:=input$ #1
  83. SAMUEBE := val(INPUT$)
  84. 'Sammellastschrift EURO
  85. INPUT$:=input$ #1
  86. SAMLASE := val(INPUT$)
  87.  
  88. close #1
  89.  
  90. ' Wenn in der Datei keine PIN steht, vom Anwender erfragen
  91. while (len(PIN$) < 5)
  92.     split(2)
  93.     print "Bitte PIN eingben: ";
  94.     PIN$ := input$
  95.     split(0)
  96. wend
  97.  
  98.  
  99. '****     Zur Startseite der Bank
  100. '
  101. if(STARTSEITE$ <> "")
  102. '     Erst einmal auf die Nullseite springen. Damit
  103. '     verlasse ich ggf. auch einen ER (normalerweise).
  104.     send(ini$+"0"+ter$)
  105.     wait(1,0,0,30000)
  106. '     Bankrechner aufrufen.
  107.     send(ini$+STARTSEITE$+ter$)
  108.     wait(1,1,24,30000)
  109.  
  110.     ZEILE$ := line$(1)
  111. '     Prüfung auf fehlgeschlagenen Versuch.
  112.     if(left$(ZEILE$,7) <> "BANK 24")
  113.         split(2)
  114.         print "Zugang fehlgeschlagen!"
  115.         print "gefunden", left$(ZEILE$,7)
  116.         print "soll", "BANK 24"
  117.         sleep(5000)
  118.         split(0)
  119.         goto ENDE:
  120.     endif
  121.  
  122. '     Es wird nur die Leitseite überprüft
  123. '     Die ER-Verbindung ist bei BANK24 erst bei Aktionen gegeben
  124. '     D.h. dort muß nocheinmal die Verbindung geprüft werden
  125. endif
  126.  
  127.  
  128. '****     entsprechend der eingstellten die relavaten
  129. '         Unterprogramme aufrufen
  130. if(STAND > 0)
  131.     gosub KTOSTAND:
  132. endif
  133. MAXUEB := EINUEB
  134. if(MAXUEB > 0)
  135.     gosub EINUEB:
  136. endif
  137. MAXUEB := EINUEBE
  138. if(MAXUEB > 0)
  139.     gosub EINUEBE:
  140. endif
  141. MAXUEB := SAMUEB
  142. if(MAXUEB > 0)
  143.     gosub SAMUEB:
  144. endif
  145. MAXUEB := SAMUEBE
  146. if(MAXUEB > 0)
  147.     gosub SAMUEBE:
  148. endif
  149. MAXUEB := SAMLAS
  150. if(MAXUEB > 0)
  151.     gosub SAMLAS:
  152. endif
  153. MAXUEB := SAMLASE
  154. if(MAXUEB > 0)
  155.     gosub SAMLASE:
  156. endif
  157. if(AUSZUG > 0)
  158.     gosub UMSAETZE:
  159. endif
  160.  
  161. '****    Programmende
  162. ENDE:
  163. end
  164.  
  165.  
  166. '**********************************************************
  167. '
  168. '  U N T E R P R O G R A M M E
  169. '
  170. '**********************************************************
  171.  
  172. '
  173. ' K O N T O S T A N D
  174. '
  175. KTOSTAND:
  176.  
  177. ' Kontostandmaske aufrufen.
  178. send("6")
  179. wait(1,0,0,30000)
  180. send("2")
  181. wait(1,0,0,30000)
  182. ' Konotnummer eintragen
  183. ' Kontonummern der Bank24 sind immer passend
  184. send(KONTONR$)
  185. ' PIN eintragen
  186. send(PIN$)
  187. wait(1,1,24,30000)
  188. ' Bestätigung
  189. send("19")
  190. wait(1,1,24,30000)
  191.  
  192. '****    Jetzt bin ich auf dem ER der Bank24
  193. '        prüfen ob dem so ist
  194. ZEILE$ := line$(4)
  195. '     Dort sollte die KtoNr stehen
  196. if(left$(ZEILE$, 7) <> left$(KONTONR$, 7))
  197.     split(3)
  198.     print "Zugang ER fehlgeschlagen!"
  199.     print "gefunden", left$(ZEILE$,7)
  200.     print "soll", left$(ZEILE$,7)
  201.     sleep(5000)
  202.     split(0)
  203.     goto E_KTOSTAND:
  204. endif
  205.  
  206. '****    Ergebnisvariablen initialisieren
  207. DATUM$ := ""
  208. ZEIT$ := ""
  209. STAND$ := ""
  210. STANDE$ := ""
  211.  
  212. '****    Datum und Uhrzeit auslesen
  213. '
  214. ZEILE$ := line$(21)
  215. DATUM$ := left$(ZEILE$, 8)
  216. ZEIT$  := mid$(ZEILE$, 10, 5)
  217.  
  218. '****    Betrag DM auslesen
  219. '
  220. ZEILE  := 8
  221. ZEILE$ := line$(ZEILE)
  222.  
  223. ' Überprüfen ob Saldo
  224. if (mid$(ZEILE$, 3, 9) = "Ihr Saldo")
  225. '     Zeile von Text und Vorzeichen befreien
  226.     ZEILE$ := mid$(ZEILE$, 12, 28)
  227.  
  228. ' oder Online-Saldo
  229. else
  230.     ZEILE := 11
  231.     ZEILE$ := line$(ZEILE)
  232.     while ((mid$(ZEILE$, 8, 12) <> "Online-Saldo") and (ZEILE < 22))
  233.         ZEILE := ZEILE + 1
  234.         ZEILE$ := line$(ZEILE)
  235.     wend
  236.  
  237. '     Zeile von Text und Vorzeichen befreien
  238.     ZEILE$ := mid$(ZEILE$, 20, 20)
  239. '     Datum und Uhrzeit neu bestimmen
  240.     DATUM$ := date$
  241.     ZEIT$  := time$
  242. endif
  243.  
  244. ' führende Leerzeichen entfernen
  245. while (left$(ZEILE$, 1) = " ")
  246.     ZEILE$ := mid$(ZEILE$, 2, 28)
  247. wend
  248. STAND$ := ZEILE$
  249.  
  250. ' Vorzeichen ermitteln und ggf. vorne anfügen
  251. ZEILE$ := line$(ZEILE)
  252. if (right$(ZEILE$, 1) = "-")
  253.     STAND$ := "-" + STAND$
  254. endif
  255.  
  256. '****    Betrag EURO auslesen
  257. '
  258. ' Auf die Euroseite wechseln
  259. send("5")
  260. wait(1,1,24,30000)
  261.  
  262. ZEILE  := 8
  263. ZEILE$ := line$(ZEILE)
  264.  
  265. ' Überprüfen ob Saldo
  266. if (mid$(ZEILE$, 3, 9) = "Ihr Saldo")
  267. '     Zeile von Text und Vorzeichen befreien
  268.     ZEILE$ := mid$(ZEILE$, 12, 28)
  269.  
  270. ' oder Online-Saldo
  271. else
  272.     ZEILE := 11
  273.     ZEILE$ := line$(ZEILE)
  274.     while ((mid$(ZEILE$, 8, 12) <> "Online-Saldo") and (ZEILE < 22))
  275.         ZEILE := ZEILE + 1
  276.         ZEILE$ := line$(ZEILE)
  277.     wend
  278.  
  279. '     Zeile von Text und Vorzeichen befreien
  280.     ZEILE$ := mid$(ZEILE$, 20, 20)
  281. endif
  282.  
  283. ' führende Leerzeichen entfernen
  284. while(left$(ZEILE$, 1) = " ")
  285.     ZEILE$ := mid$(ZEILE$, 2, 28)
  286. wend
  287. STANDE$ := ZEILE$
  288.  
  289. ' Vorzeichen ermitteln und ggf. vorne anfügen
  290. ZEILE$ := line$(ZEILE)
  291. if (right$(ZEILE$, 1) = "-")
  292.     STANDE$ := "-" + STANDE$
  293. endif
  294.  
  295. '****    Daten in Kontostanddatei schreiben
  296. '
  297. open #1,KSTAND$,"w"
  298. print #1,DATUM$
  299. print #1,ZEIT$
  300. print #1,STAND$
  301. print #1,STANDE$
  302. close #1
  303.  
  304. '****    Zurück zur Leitseite
  305. '
  306. E_KTOSTAND:
  307. send("0")
  308. wait(1,1,24,30000)
  309. return
  310.  
  311.  
  312.  
  313. '
  314. ' E I N Z E L Ü B E R W E I S U N G E N
  315. '
  316. '****    Einzelüberweisung DM
  317. EINUEB:
  318.  
  319. ' Anzahl nicht versandter Überweisungen in Überweisungsdatei
  320. COUNTMAX := MAXUEB
  321. COUNTNAME$ := EINUEB$
  322. gosub COUNTOPEN:
  323. ' keiner mehr da, und tschüss
  324. if (COUNTMAX = 0)
  325.     return
  326. endif
  327. ' Parameter setzten und Überweisungsunterprogramm aufrufen
  328. ISEURO := 0
  329. ANWFILENAME$ := EINUEB$
  330. gosub EUEB:
  331.  
  332. '****    Unterprogrammende
  333. return
  334.  
  335.  
  336. '****    Einzelüberweisung EURO
  337. EINUEBE:
  338.  
  339. ' Anzahl nicht versandter Überweisungen in Überweisungsdatei
  340. COUNTMAX := MAXUEB
  341. COUNTNAME$ := EINUEBE$
  342. gosub COUNTOPEN:
  343. ' keiner mehr da, und tschüss
  344. if (COUNTMAX = 0)
  345.     return
  346. endif
  347. ' Parameter setzten und Überweisungsunterprogramm aufrufen
  348. ISEURO := 1
  349. ANWFILENAME$ := EINUEBE$
  350. gosub EUEB:
  351.  
  352. '****    Unterprogrammende
  353. return
  354.  
  355.  
  356. '****    Überweisungsunterprogramm
  357. '
  358. EUEB:
  359.  
  360. ' Die Auftragsseite aufrufen.
  361. send("7")
  362. wait(1,1,24,30000)
  363.  
  364. '****    Ab hier Einspielen der Datensätze.
  365. for i:=1 to MAXUEB
  366. '     TAN als leer initialisieren, da jeder Auftrag ja seine
  367. '     eigene TAN hat (im Gegensatz zu den Sammlern).
  368.     TAN$ := ""
  369.  
  370.     if (ISEURO = 0)
  371.     '     Überweisungen in DM
  372.         send("1")
  373.     else
  374.     '     Überweisungen in EURO
  375.         send("2")
  376.     endif
  377.     wait(1,0,0,30000)
  378.  
  379. '     nächste Datei mit Überweisungsdaten festlegen
  380.     FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$
  381.  
  382. '     Einspielen des aktuellen Überweisungs-Datensatzes.
  383.     GLOBALERROR := 0
  384.     gosub SENDENTRY:
  385.  
  386. '****    der Überweisungs-Datensatz war nicht logisch gelöscht
  387.     if (GLOBALERROR = 0)
  388.  
  389. '         Überprüfung auf korrekte Überweisungsausführung
  390.         FILENAME$ := ANWFILENAME$+str$(i-1)+UEBEXTENSION$
  391.         GLOBALERROR := 0
  392.         gosub CHECK:
  393.  
  394. '         Falsche TAN benutzt
  395.         if (GLOBALERROR = 99)
  396. '             Cursor in das Konto-Nr Feld bringen
  397.             send(ter$)
  398.             send(ter$)
  399.             send(ter$)
  400.             send(ter$)
  401.             send(ter$)
  402.             send(ter$)
  403.             send(ter$)
  404.             send(ter$)
  405.             send(ter$)
  406.  
  407. '             Konotnummer eintragen
  408. '